<?php

App::uses('AppController', 'Controller');

/**
 * Maneja la información de los usuarios
 * 
 * @author vcanizares
 */
class UsuarioController extends AppController {
	
	/**
	 * Componentes
	 */
	public $components = array('Menu');
	
	/**
	 * Helpers
	 */
	//public $helpers = array('Js');
	
	/**
	 * Nombre del controlador
	 */
	public $name = 'Usuario';
	
	/**
	 * Modelos
	 */
	public $uses = array('Usuario', 'Observador');
	
	/*public function beforeFilter() {
	    parent::beforeFilter();
	    $this->Auth->allow('crear'); // Letting users register themselves
	}
	
	public function login() {
		
	    if ($this->request->is('post')) {
	    	
	        if ($this->Auth->login()) {
	            return $this->redirect($this->Auth->redirectUrl());
	        } else {
	            $this->Session->setFlash(__('Usuario o contraseña no válidos, por favor, inténtelo de nuevo'));
	        }
	    }
	    else {
	    	if($this->Auth->user('id')) {
	    		$this->redirect($this->Auth->redirectUrl());
	    	}
	    }
	}
	
	public function logout() {
	    $this->redirect($this->Auth->logout());
	}
	
	public function register() {
	    if ($this->Usuario->save($this->request->data)) {
	        $id = $this->Usuario->id;
	        $this->request->data['Usuario'] = array_merge($this->request->data['Usuario'], array('id' => $id));
	        $this->Auth->login($this->request->data['Usuario']);
	        $this->redirect('/Usuario/index');
	    }
	}*/
	
	/**
	 * Funcion que da de alta un nuevo usuario
	 */
	public function crear() {
		
        if ($this->request->is('post')) {
        	
        	// Seteamos el perfil a "EDITOR"
        	$this->request->data['Usuario']['perfil_id']=2;
        	
        	// Reinicia el modelo de Usuario
            $this->Usuario->create();
            
            // Crea un nuevo registro de usuario en BD
            if ($this->Usuario->save($this->request->data)) {
            	
            	// Asignamos el id de usuario al nuevo observador
            	$this->request->data['Observador']['usuario_id']=$this->Usuario->id;
            	
            	// Generamos el nuevo código de observador
            	$this->request->data['Observador']['codigo']='668';
            	
            	// Crea el registro en la tabla de observadores
            	$datosObservador = $this->Observador->create();
            	if ($this->Observador->save($this->request->data)) {
            		
            		$id = $this->Usuario->id;
	        		$this->request->data['Usuario'] = array_merge($this->request->data['Usuario'], array('id' => $id));
	        		$this->Auth->login($this->request->data['Usuario']);
	        		$this->redirect('/inicio');
            	}
            } else {
                $this->Session->setFlash(__('El usuario no ha podido darse de alta. Por favor, inténtelo de nuevo'));
            }
        }
    }
}
	
?>